package com.tlias.service;

import com.tlias.entity.Emp;
import com.tlias.entity.EmpLogin;
import com.tlias.entity.EmpQueryParam;
import com.tlias.entity.PageBean;

import java.util.List;

/**
 * 员工服务接口，定义了员工信息的查询、添加和删除操作
 */
public interface EmpService {
    /**
     * 根据查询参数获取分页员工信息
     *
     * @param param 员工查询参数，包含分页信息和查询条件
     * @return 返回包含员工信息的分页对象
     */
    PageBean page(EmpQueryParam param);

    /**
     * 添加新员工信息
     *
     * @param emp 新员工对象，包含员工详细信息
     * @throws Exception 如果添加过程中发生错误，抛出异常
     */
    void insertStaff(Emp emp) throws Exception;

    /**
     * 根据员工ID列表删除员工信息
     *
     * @param ids 员工ID列表，标识要删除的员工
     */
    void deleteStaff(List<Integer> ids);

    /**
     * 根据员工ID获取员工信息
     *
     * @param id 员工ID，标识要获取的员工
     * @return 返回员工对象，包含员工详细信息
     */
    Emp getById(Integer id);

    /**
     * 更新员工信息
     *
     * @param emp 要更新的员工对象，包含员工详细信息
     */
    void update(Emp emp);

    /**
     * 获取所有员工信息
     *
     * @return 返回所有员工对象列表，包含员工详细信息
     */
    List<Emp> findAllList();

    /**
     * 员工登录
     *
     * @param emp 员工对象，包含员工登录信息
     * @return 返回员工登录对象，包含员工登录信息
     */
    EmpLogin login(Emp emp);
}
